import json


def process_tags_jsonl(input_file, output_file):
    """
    将源数据文件的tag从字符串转为列表，保存到输出JSONL文件

    Args:
        input_file: 原始JSONL数据文件路径
        output_file: 处理后的数据保存路径
    """
    try:
        # 读取原始JSONL数据
        processed_count = 0
        with (
            open(input_file, "r", encoding="utf-8") as in_f,
            open(output_file, "w", encoding="utf-8") as out_f,
        ):
            # 逐行处理
            for line in in_f:
                line = line.strip()
                if not line:  # 跳过空行
                    continue

                # 解析单行JSON
                item = json.loads(line)

                # 处理tag字段
                if "tag" in item and item["tag"]:
                    item["tag"] = item["tag"].split(",")
                else:
                    item["tag"] = []

                # 写入处理后的单行JSON
                json.dump(item, out_f, ensure_ascii=False)
                out_f.write("\n")  # 每行一个JSON对象
                processed_count += 1

        print(f"处理完成，共处理 {processed_count} 条数据，结果已保存到 {output_file}")

    except FileNotFoundError:
        print(f"错误：找不到文件 {input_file}")
    except json.JSONDecodeError as e:
        print(f"错误：文件 {input_file} 的JSON格式无效 - {str(e)}")
    except Exception as e:
        print(f"处理过程中发生错误：{str(e)}")


# 使用示例
if __name__ == "__main__":
    # 原始JSONL数据文件路径
    input_filename = "result/24_result.jsonl"
    # 处理后的数据保存路径
    output_filename = "processed_bilibili_data.jsonl"

    # 调用函数处理数据
    process_tags_jsonl(input_filename, output_filename)
